#include <iostream>

using namespace std;
// if else if  if if else
// 多路选择，多路选择的推倒过程。

int main()
{
//    cout << "Hello World!" << endl;
#if 0
    // if if esle
    // 如果 a == b 的话打印，或 a > b 的时候打印
    // else 总是先跟其前最近的且向未配对的if进行配对。
    // 补救方法
    // 1.{}
    // 2.再加一个 else 分支
    int a = 5; int b = 4;
    if(a != b)
        if(a > b)
            printf("a > b\n");
        else {
            printf(" ");
        }

    else {
        printf("a == b\n");
    }
#endif
#if 0
    // if else if
    // 没有增加任何补救方法

    //当要处理超过两路以上分支的时候，将第三路分支以上的分支，放到 else 部分处理
//    int a = 5; int b = 4;
//    if(a == b)
//        printf("a == b\n");
//    else
//        if(a > b)
//            printf("a > b\n");
//        else
//            printf("a < b\n");

    int a = 5; int b = 4;
    if(a == b)
        printf("a == b\n");
    else if(a > b)
        printf("a > b\n");
    else
        printf("a < b\n");
#endif
    // 优 良 中 及格 差
    // 这种选择回带来一种自然的选择。如果打破这种自然选择，结果难以预料。
//    float score;
//    scanf("%f",&score);
//    if(score >= 90)
//        printf("该生学习优秀\n");
//    else if(score >= 80)
//        printf("该生学习良好\n");
//    else if(score >= 70)
//        printf("该生学习中等\n");
//    else if(score >= 60)
//        printf("该生学习及格\n");
//    else
//        printf("差\n");

    // 这种选择回带来一种自然的选择。如果打破这种自然选择，结果难以预料。
    // 为了保证万无一失，最简单的方法就是把每一路的逻辑写死。
    float score;
    scanf("%f",&score);
    if(score >= 90)
        printf("该生学习优秀\n");
    else if(score >= 70 && score < 80)
        printf("该生学习中等\n");
    else if(score >= 60 && score < 70)
        printf("该生学习及格\n");
    else if(score >= 80 && score < 90)
        printf("该生学习良好\n");
    else
        printf("差\n");
    return 0;
}
